test: fix flaky test-tls-socket-close#11921
Conversation
Replace timer/timeout race with event-based ordering, eliminating test flakiness. Fixes: nodejs#11912
|
Stress test on current master (should show failures): https://ci.nodejs.org/job/node-stress-single-test-pi1-binary/17/label=pi1-raspbian-wheezy/console Stress test on this PR (should show no failures): https://ci.nodejs.org/job/node-stress-single-test-pi1-binary/19/label=pi1-raspbian-wheezy/console |
|
Argh! This version of the test doesn't fail/segfault on v7.0.0 the way the original version does, so I've now made the test invalid. Will mark this as stalled until I get around to fixing it or I give up and close it. |
|
Fixed it, but now have to re-run all the stress tests etc.... |
|
Current master stress test showing 28 failures in 999 runs: https://ci.nodejs.org/job/node-stress-single-test-pi1-binary/17/label=pi1-raspbian-wheezy/console |
|
Stress test against this PR that will hopefully show no failures: https://ci.nodejs.org/job/node-stress-single-test-pi1-binary/21/label=pi1-raspbian-wheezy/console EDIT: Oof, this made it a lot worse. Back to the drawing board. |
|
OK, did some step-debugging and hopefully this will now do it... Stress test against this PR: https://ci.nodejs.org/job/node-stress-single-test-pi1-fanned/25/ |
|
Argh, cleaned up some unused code. Once more with feeling: Stress test against this PR: https://ci.nodejs.org/job/node-stress-single-test-pi1-fanned/26/ |
|
All tests passing including stress test. |
|
LGTM apart from one nit. Thanks for fixing this! |
| // this breaks if TLSSocket is already managing the socket: | ||
| netSocket.destroy(); | ||
| const interval = setInterval(() => { | ||
| // Checking this way allows us to do the right at a time that causes a |
Replace timer/timeout race with event-based ordering, eliminating test flakiness. PR-URL: nodejs#11921 Fixes: nodejs#11912 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
|
Landed in 7bc893f |
Replace timer/timeout race with event-based ordering, eliminating test flakiness. PR-URL: nodejs/node#11921 Fixes: nodejs/node#11912 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Santiago Gimeno <santiago.gimeno@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Replace timer/timeout race with event-based ordering, eliminating test
flakiness.
Fixes: #11912
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passesAffected core subsystem(s)
test tls